/*
 * @lc app=leetcode.cn id=746 lang=java
 *
 * [746] 使用最小花费爬楼梯
 */

// @lc code=start
class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int[] dp=new int[cost.length];
        dp[0]=cost[0];
        dp[1]=cost[1];
        for(int i=2;i<dp.length;i++){
            dp[i]=Math.min(dp[i-1], dp[i-2])+cost[i];
        }
        return Math.min(dp[cost.length-1], dp[cost.length-2]);

    }
}

//新版本
// class Solution {
//     public int minCostClimbingStairs(int[] cost) {
//         int n=cost.length;
//         int[] dp=new int[n+1];
//         dp[0]=0;
//         dp[1]=0;
//         for(int i=2;i<=n;i++){
//             dp[i]=Math.min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
//         }
//         return dp[n];
//     }
// }
// @lc code=end

